package gui;

import java.util.Random;

import javax.swing.JLabel;

import juego.Logica;
import unidad.*;

public class ThreadCrearEnemigo extends Thread {

	protected int tiempo;
	protected boolean terminar;
	protected Logica log;
	protected Nivel n;
	protected Random random;
	protected int idE;
	private Thread crearE;
	private ThreadMoverEnemigo moverEnemigo;
	
	public ThreadCrearEnemigo(int t, Logica l, Nivel gui, ThreadMoverEnemigo thread) {
		tiempo = t;
		terminar = false;
		log = l;
		n = gui;
		random = new Random();
		idE = -1;
		crearE = new Thread(this);
		moverEnemigo = thread;
	}
	
	public void run() 
	{
		try
		{
			while(!terminar) 
			{
				try {
					Thread.sleep(tiempo);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
				int fila = random.nextInt(5);
				fila %= 5;
				int tipoEnemigo = random.nextInt(5);
				tipoEnemigo %= 5;
				
				int a = moverEnemigo.getIteracion();
				while(a != 1)
				{
					a = moverEnemigo.getIteracion();
					if(a == 1) moverEnemigo.esperar();
				}
					
				Unidad aux = log.crearEnemigo(idE, fila, tipoEnemigo);
				if(aux != null)
				{
					idE--;
					JLabel enemigo = null;
					switch (tipoEnemigo) {
					case 1: 
					{
						enemigo = n.crearEnemigo(fila,"imagenes/arania");
						break;
					}
					case 2:	
					{
						enemigo = n.crearEnemigo(fila,"imagenes/soldadito");
						break;
					}
					case 3:	
					{
						enemigo = n.crearEnemigo(fila,"imagenes/soldadoFut");
						break;
					}
					case 4:	
					{
						enemigo = n.crearEnemigo(fila,"imagenes/moto");
						break;
					}
					}
					moverEnemigo.getMapeo().put(enemigo, aux);
				}
			}			
		}catch(Exception e){}


	}
	
	public void terminar(){terminar = true;}
	
	public void start() {
		crearE.start();
	}
	
}
